package com.matrix.im.infrastructure.persistence.repository;

import com.matrix.im.domain.model.SystemMessage;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

/**
 * @author 有点甜
 * @since 2025/8/2
 */
@Repository
public interface SystemMessageMongoRepository extends MongoRepository<SystemMessage, String> {

    /**
     * 根据用户ID查询系统消息列表
     *
     * @param userId   用户ID
     * @param pageable 分页
     * @return 系统消息列表
     */
    Page<SystemMessage> findByUserId(Long userId, Pageable pageable);

    /**
     * 根据用户ID和是否已读查询系统消息数量
     *
     * @param userId 用户ID
     * @param isRead 是否已读
     * @return 系统消息数量
     */
    long countByUserIdAndIsRead(Long userId, boolean isRead);
}
